package org.ciallo.easytokencore.annotation;

import org.ciallo.easytokencore.annotation.handler.EasyCheckLoginHandler;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Easy-Token 登录校验注解
 *
 * <p>主要用途：</p>
 * <ul>
 *   <li>标记需要登录校验的方法或类</li>
 *   <li>自动校验请求中的Token有效性</li>
 *   <li>支持方法级别和类级别的校验</li>
 * </ul>
 *
 * <p>使用示例：</p>
 * <pre>
 * {@code
 * @EasyCheckLogin
 * public ResponseEntity<?> getUserInfo() {
 *     // 需要登录才能访问的方法
 * }
 * }
 * </pre>
 *
 * <p>元注解说明：</p>
 * <ul>
 *   <li>@Target 指定注解可用于方法和类上</li>
 *   <li>@Retention 指定注解在运行时保留</li>
 * </ul>
 *
 * @Description: Easy-Token 登录校验注解
 * @Author: Jukomu
 * @Package: org.ciallo.easytokencore.annotation
 * @Project: easy-token-demo
 * @Version: 1.0.0
 * @name: EasyCheckLogin
 * @Date: 2025/5/6-15:34
 * @Filename: EasyCheckLogin
 * @see EasyCheckLoginHandler
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface EasyCheckLogin {
    /**
     * token 值
     *
     * @return /
     */
    String token() default "";
}
